Vymazanie spusteneho programu

Otázka od: Martin Kasman

7. 1. 2004 10:24

Chcem aby program, ktory bezi sam seba vymazal. Jedna sa totizto o
odinstalacny program. Ako to urobit? Da sa to vobec? Mam urobit nejaky zapis
do registra, aby pri spusteni pocitac program vymazal?

Vdaka za kazdu radu.



Odpovedá: Jan Krizek

7. 1. 2004 11:24

Toto by melo nastavit smazani souboru po restartu pocitace:


        if IsWinNT then
          MoveFileEx( PChar( Filename ), nil,
MOVEFILE_DELAY_UNTIL_REBOOT )
        else
          WritePrivateProfileString( 'Rename', 'NUL', PChar( Filename ),
'wininit.ini' );

Honza +
p.s. IsWinNT je detekce zda se jedna o Win NT nebo Win9x, najdes ji
napr. v JCL.


> -----Original Message-----
> From: Martin Kasman [mailto:martinkasman@martinkasman.sk]
> Sent: Wednesday, January 07, 2004 9:38 AM
> To: delphi-l@clexpert.cz
> Subject: Vymazanie spusteneho programu
>
>
> Chcem aby program, ktory bezi sam seba vymazal. Jedna sa totizto o
> odinstalacny program. Ako to urobit? Da sa to vobec? Mam
> urobit nejaky zapis
> do registra, aby pri spusteni pocitac program vymazal?
>
> Vdaka za kazdu radu.
>
>
>
>
>

Odpovedá: Tvrz Miroslav

7. 1. 2004 11:21

> odinstalacny program. Ako to urobit? Da sa to vobec? Mam urobit nejaky
zapis
> do registra, aby pri spusteni pocitac program vymazal?

Bud do nekam registru a nebo si udelej davkovy soubor (.BAT) - vytvoris jej
v TEMPu systemu, zapises do nej par prikazu pro smazani tveho programu a
pak ho po vytvoreni spust pomoci CreateProcess
(http://www.delphicorner.f9.co.uk/articles/wapi4.htm).

Omlouvam se jestli to nepisu zcela presne, ale je to uz par roku co jsem
tohle delal a ted matne vzpominam   - muzu poslat cast kodu ktery jsem na
tohle pouzil.

MI'RA
-----Original Message-----
From: Martin Kasman [mailto:martinkasman@martinkasman.sk]
Sent: Wednesday, January 07, 2004 9:38 AM
To: delphi-l@clexpert.cz
Subject: Vymazanie spusteneho programu

Chcem aby program, ktory bezi sam seba vymazal. Jedna sa totizto o
odinstalacny program. Ako to urobit? Da sa to vobec? Mam urobit nejaky zapis
do registra, aby pri spusteni pocitac program vymazal?
Vdaka za kazdu radu.



Odpovedá: Ondrej Kelle

7. 1. 2004 11:18

> Chcem aby program, ktory bezi sam seba vymazal. Jedna sa totizto o
> odinstalacny program. Ako to urobit? Da sa to vobec? Mam
> urobit nejaky zapis
> do registra, aby pri spusteni pocitac program vymazal?

Dalsia moznost je, ze program sa pri starte skopiruje do temp adresara,
spusti tu kopiu a ukonci sa. Kopia beziaca v temp adresari potom moze mazat
povodny program.
Sama seba potom nastavi v registry na zmazanie po reboote, ako tu uz bolo
ukazane.

Vyhoda tohto postupu moze byt v tom, ze mozes mazat cele adresare danej
aplikacie este pred rebootom - cize odinstalacia prebehne takmer kompletne
hned - zostava uz len dany setup.exe v temp adresari, a ten bude zmazany pri
dalsom reboote.

HTH
TOndrej